دستوارات متن ( Text Commands ) :
 
آموزش ساخت بازی سه بعدی به زبان Basic با دارک بیسیک Dark Basic
تهیه و آموزش نرم افزار دارک بیسیک
 
 
چهار شنبه 21 فروردين 1392برچسب:, :: 5:21 ::  نويسنده : ابوالفضل
در این فصل با چگونگی چاپ متن بر روی صفحه نمایشگر ( Monitor ) آشنا خواهیم شد . همچنین با استفاده از دستوارت این فصل قادر خواهیم بود تا ویژگی های مربوط به متنمان ، شامل نوع خط ( Font ) ، اندازه ، رنگ و ... را مشخص کنیم .
 
دستور TEXT
این دستور عبارتی را با توجه به مختصات طولی و عرضی داده شده ، بر روی صفحه ی نمایشگر ( Monitor ) چاپ می کند . مانند دستورالعمل زیر :
 
TEXT X,Y,String
 
طبق این دستورالعمل ابتدا عبارت کلیدی TEXT سپس به جای X مقدار فاصله ی متن از سمت چپ نمایشگر و به جای Y مقدار فاصله ی متن از بالا را بصورت دو عدد قرار می دهیم و به جای String عبارت مورد نظرمان را وارد می کنید . مانند مثال زیر :
 
"strText$ = "center
"TEXT 10,10,"top left
$TEXT 320,240,strText
WAIT KEY
 
در این مثال عبارت top left در مخصات ( طول = 10 و عرض = 10 ) و center در مختصات ( طول 320 و عرض 240 ) بر روی صفحه ی نمایشگر چاپ می شوند .
 
دستور CENTER TEXT
این دستور همانند دستور گذشته ، متن مورد نظر را در مختصات داده شده چاپ می کند . با این تفاوت که اگر متن مورد نظر را داخل یک مستطیل در نظر بگیریم ، مختصات نقطه ای که در وسط ضلع بالای آن مستطیل است ، دقیقا منطبق بر مختصات داده شده ی X و Y می شود . مانند مثال زیر :
 
"CENTER TEXT 320,10,"top
"CENTER TEXT 320,240,"center
WAIT KEY
 
دستور SET TEXT FONT
این دستور فونت عبارات مورد نظرمان را قبل از چاپ آن عبارت مشخص می کند . مانند دستورالعمل زیر :
 
SET TEXT FONT Fontname
 
طبق این دستورالعمل به جای Fontname نام فونت مورد نظرمان را قرار می دهیم . البته نام فونتی را که در ویندوز نصب شده باشد . مانند مثال زیر :
 
"SET TEXT FONT "verdana
"PRINT "hello verdana
 
WAIT KEY
 
در این مثال ابتدا در خط اول نوع فونت ( برای مثال verdana ) انتخاب و سپس متن مورد نظر با همان فونت چاپ خواهد شد . یعنی فونت باید قبل از چاپ مشخص شود .
 
دستور SET TEXT SIZE
با استفاده از این دستور می توانیم اندازه ی فونت عبارات مورد نظرمان را قبل از چاپ عبارات مشخص کنیم . مانند دستور العمل زیر :
 
SET TEXT SIZE size
 
طبق این دستورالعمل به جای size اندازه ی فونت مورد نظرمان را بصورت عدد وارد می کنیم . مانند مثال زیر :
 
"SET TEXT FONT "verdana
SET TEXT SIZE 30
 
"PRINT "hello verdana
WAIT KEY
 
با اجرای این مثال در خط اول ابتدا فونت verdana مشخص و در خط دوم اندازه ی فونت برابر 30 شد و در خط سوم عبارت hello verdana با فونت verdana و اندازه ی 30 چاپ شد .
 
دستور SET TEXT TO BOLD
با این دستور می توانیم عبارات مورد نظرمان را جهت چاپ ضخیم کنیم . مانند مثال زیر :
 
"CENTER TEXT 320,240,"No Bold
SET TEXT TO BOLD
"CENTER TEXT 320,260,"Bold
WAIT KEY
 
در این مثال عبارت No Bold چاپ و بعد از ضخیم شدن فونت توسط دستور SET TEXT TO BOLD در خط دوم عبارت Bold بصورت ضخیم چاپ شد .
 
دستور SET TEXT TO ITALIC
از این دستور برای زیرخط دار کردن عبارات جهت چاپ ، استفاده می کنیم . مانند مثال زیر :
 
SET TEXT TO ITALIC
"CENTER TEXT 320,240,"HELLO WORLD
WAIT KEY
 
دستور SET TEXT TO BOLDITALIC
به جای استفاده از دو دستور قبلی ( یعنی SET TEXT TO BOLD و SET TEXT TO ITALIC ) می توانیم از این دستور استفاده کنیم . مانند مثال زیر :
 
SET TEXT TO BOLDITALIC
"CENTER TEXT 320,240,"HELLO WORLD
WAIT KEY
 
 
دستور SET TEXT TO NORMAL
این دستور عملکرد های سه دستور گذشته ( یعنی SET TEXT TO BOLD و SET TEXT TO ITALIC و SET TEXT TO BOLDITALIC ) را خنثی می کند . مانند مثال زیر :
 
SET TEXT TO BOLD
SET TEXT TO ITALIC
"CENTER TEXT 320,240,"Bold And Italic
SET TEXT TO NORMAL
"CENTER TEXT 320,260,"No Bold And No Italic
WAIT KEY
 
دستور SET TEXT OPAQUE
با این دستور می توانیم عبارت مورد نظرمان را برای چاپ مجهز به رنگ پس زمینه کنیم . مانند مثال زیر :
 
For I = 1 To 200 Step 2
      CIRCLE 320,250,I
Next I
SET TEXT SIZE 30
"CENTER TEXT 320,220,"Text
SET TEXT OPAQUE
"CENTER TEXT 320,250,"Text OPAQUE
WAIT KEY
 
در این مثال در خطوط اول تا سوم 100 تا دایره رسم کردیم که بعدا راجع به ترسیم داره صحبت خواهیم کرد . بعد عبارت Text را چاپ و بعد از دستور SET TEXT OPAQUE عبارت Text OPAQUE بصورت پس زمینه دار چاپ شد . در اینجا پس زمینه عبارت Text OPAQUE سیاه رنگ است . بعد ها استفاده از رنگ های مختلف را برای چاپ متن و غیره ، آموزش خواهیم داد .
 
دستور SET TEXT TRANSPARENT
با بکار بردن این دستور می توانیم پس زمینه عبارتمان را برای چاپ حذف کنیم .
یعنی برعکس دستور SET TEXT OPAQUE . مانند مثال زیر :
 
For I = 1 To 200 Step 2
      CIRCLE 320,250,I
Next I
SET TEXT SIZE 30
"CENTER TEXT 320,220,"Text
SET TEXT OPAQUE
"CENTER TEXT 320,250,"Text OPAQUE
SET TEXT TRANSPARENT
"CENTER TEXT 320,280,"Text TRANSPARENT
WAIT KEY
 
دستور PERFORM CHECKLIST FOR FONTS
با استفاده از این سلسله دستورات ، میتوانیم تعداد و نام تمامی فونت های نصب شده بر روی ویندوز را بدست آوریم . مانند مثال زیر :
 
PERFORM CHECKLIST FOR FONTS
()FOR C = 1 TO CHECKLIST QUANTITY
(PRINT CHECKLIST STRING$(C
NEXT C
WAIT KEY
 
با اجرای این مثال ، ابتدا در خط اول توسط دستور PERFORM CHECKLIST FOR FONTS لیست مرکزی برنامه ی DarkBasic از اسامی فونت های نصب شده پر می شود . و دستور For … Next توسط تابع CHECKLIST QUANTITY که تعداد فونت ها را مشخص می کند . متغیر C را از یک تا تعداد فونت ها می شمارد . سپس در خط سوم مقدار تابع ()$CHECKLIST STRING با ورودی C ، که شامل نام فونت هاست توسط دستور PRINT چاپ می شود .
 
تابع TEXT FONT
این تابع نام فونت جاری را بصورت عبارت متنی برمی گرداند . یعنی نام آخرین فونتی که انتخاب شده . مانند مثال زیر :
 
"SET TEXT FONT "verdana
"PRINT "verdana
 
"SET TEXT FONT "Arial
"PRINT "Arial
()$PRINT "Current Font Is : " ; TEXT FONT
WAIT KEY
 
در این مثال نام آخرین فونت انتخاب توسط تابع ()$TEXT FONT چاپ می شود .
 
تابع TEXT SIZE
این تابع آخرین سایز انتخابی متن را برمی گرداند . مانند مثال زیر :
 
SET TEXT SIZE 10
SET TEXT SIZE 20
()PRINT TEXT SIZE
WAIT KEY
 
تابع TEXT STYLE
این تابع عددی را برمی گرداند که نشان دهنده ی نوع فونت ( Bold و Italic و BoldItalic ) می باشد . یعنی اگر آخرین بار از دستور SET TEXT TO ITALIC استفاده شده باشد ، عدد 1 و اگر آخرین بار از دستور SET TEXT TO BOLD استفاده شده باشد ، عدد 2 و اگر آخرین بار از دستور SET TEXT TO BOLDITALIC استفاده شده باشد ، عدد 3 توسط این تابع برگردانده می شود . مانند مثال زیر :
 
SET TEXT TO ITALIC
()PRINT TEXT STYLE
SET TEXT TO BOLD
()PRINT TEXT STYLE
SET TEXT TO BOLDITALIC
()PRINT TEXT STYLE
WAIT KEY
 
تابع TEXT WIDTH
این تابع اندازه ی طول عباراتمان را بر روی صفحه نمایشگر پیش بینی کرده و بصورت یک عدد برمیگرداند . مانند مثال زیر :
 
("PRINT TEXT WIDTH("Hello World
WAIT KEY
 
در این مثال طول عبارت Hello World با توجه به نوع فونت و اندازه ی آن بدست آمد . برای مثال ، اگر خواستیم عبارتی را در قسمت راست صفحه چاپ کنیم ( تحت هر مختصات طولی و عرضی نمایشگر ) می توانیم از این تابع استفاده کنیم . مانند مثال زیر :
 
"TEXT SCREEN WIDTH()-TEXT WIDTH("Hello World"),0,"Hello World
WAIT KEY
 
در این مثال طول عبارت Hello World توسط تابع ()TEXT WIDTH از طول مختصات طولی نمایشگر توسط تابع ()SCREEN WIDTH کم شد و توسط دستور TEXT عبارت Hello World در قسمت راست نمایشگر چاپ می شود . یعنی رزولوشن نمایشگر ( مختصات طولی و عرضی مانیتور ) هر مقداری باشد ، عبارت فوق با کمک این تابع در سمت راست نمایشگر چاپ خواهد شد .
 
تابع TEXT HEIGHT
این تابع اندازه ی ارتفاع عباراتمان را بر روی صفحه نمایشگر پیش بینی کرده و بصورت یک عدد برمی گرداند .  مانند مثال زیر :
 
("PRINT TEXT HEIGHT("Hello World
WAIT KEY
 
 
در این مثال ارتفاع عبارت Hello World با توجه به نوع فونت و اندازه ی آن بدست آمد . پس اگر خواستیم عبارتی را در قسمت پایین صفحه چاپ کنیم ( تجت هر مختصات طولی و عرضی نمایشگر ) می توانیم از این تابع استفاده کنیم . مانند مثال زیر :
 
"TEXT 0,SCREEN HEIGHT()–TEXT HEIGHT("Hello World"),"Hello World
WAIT KEY
 
تابع ASC
این تابع یک عبارت تک کاراکتری را دریافت کرده و شماره ی آن را به صورت یک عدد برمی گرداند . مانند مثال زیر :
 
("*")PRINT ASC
WAIT KEY
 
مانند مثال بالا ، هر کاراکتری طبق جدول زیر ( اسکی کد ASCII code ) دارای شماره ی منحصر به فردی می باشد .
 
جدول اسکی کدها ( ASCII CODES )
 
 
تابع CHR
این تابع شماره ی کاراکتری را بصورت یک عدد دریافت و کاراکتر همان شماره را طبق جدول اسکی کدها بصورت تک کاراکتر ، برمی گرداند . مانند مثال زیر :
 
(PRINT CHR$(42
WAIT KEY
 
 
تابع BIN
این تابع عددی از نوع Integer دریافت و مقدار عددی آن بر مبنای 2 را بصورت عبارتی از نوع کاراکتر برمی گرداند . مانند مثال زیر :
 
(PRINT BIN$(42
WAIT KEY
 
تابع HEX
این تابع عددی از نوع Integer دریافت کرده و عددی بر مبنای هگزادسیمال آن بصورت کاراکتر برمی گرداند . مانند مثال زیر :
 
(PRINT HEX$(42
WAIT KEY
 
 
تابع LEFT
این تابع دو ورودی دریافت می کند . یک عبارت کاراکتری ( متن / String ) و یک عدد از نوع Integer . سپس به مقدار عدد دریافتی از سمت چپ عبارت ورودی کاراکتر جدا می کند . مانند دستورالعمل زیر :
 
(strLeft$ = LEFT$(strValue,intValue
 
طبق این دستورالعمل به مقدار intValue از سمت چپ عبارت strValue کاراکتر جدا شده و تابع ()$LEFT مقدار آن را بر می گرداند . مانند مثال زیر :
 
(PRINT LEFT$("hello world",5
WAIT KEY
 
 
با اجرای این مثال 5 کاراکتر از سمت چپ عبارت hello world جدا شده . یعنی عبارت  hello توسط تابع ()$LEFT برگردانده شده و سپس توسط دستور PRINT نمایش داده می شود .
 
تایع RIGHT
این تابع همانند تابع ()$LEFT عمل می کند . با این تفاوت که از سمت راست عبارت ، کاراکتر جدا می کند . مانند مثال زیر :
 
"myString$ = "hello world
(A$ = RIGHT$(myString$,5
 
$PRINT A
WAIT KEY
 
تابع MID
این تابع مانند تابع های گذشته دو ورودی کاراکتری و عددی دریافت می کند . با این تفاوت که عبارت ورودی را در نظر گرفته و از سمت چپ کاراکتر ها را به مقدار عدد ورودی می شمارد و تنها همان یک کاراکتر را بر می گرداند . مانند مثال زیر :
 
(PRINT MID$("hello world",7
WAIT KEY
 
با اجرای این مثال هفتمین کاراکتر عبارت ورودی hello world از سمت چپ ، یعنی w توسط تابع ()$MID برگردانده شده ( بدست می آید ) و توسط دستور PRINT چاپ می شود .
 
تابع LEN
این تابع عبارت کاراکتری را بعنوان ورودی دریافت می کند و تعداد کاراکتر های تشکیل دهنده آن را می شمارد . مانند مثال زیر :
 
("PRINT LEN("hello world
WAIT KEY
 
با اجرای این مثال تعداد کاراکتر های تشکیل دهنده ی عبارت hello world که 11 کاراکتر است ، توسط تابع ()LEN برگردانده شده و توسط دستور PRINT چاپ می شود . فضاها هم جزء کاراکترهای یک عبارت متنی محسوب می شوند . یعنی بین hello و world یک فضا قرار داده شده که آن هم جزء کاراکتر ها حساب می شود .
 
تابع Val
اگر به جدول اسکی کد ها نگاه کنیم ، خواهیم دید که تعدادی از کاراکتر ها شبیه اعداد می باشند . این تابع عباراتی را که به شکل عدد است ، بصورت عبارت کاراکتری دریافت کرده و بصورت عدد ، برمی گرداند . مانند مثال زیر :
 
PRINT VAL("42")+1
WAIT KEY
 
همانطور که می بینید ، تابع VAL عبارت 42 را که شبیه عدد 42 است ، به عدد تبدیل کرد . در این مثال عدد برگشت داده شده با عدد 1 جمع و نتجه آن که 43 باشد ، چاپ می شود .
 
تابع $SPACE
این تابع یک عدد دریافت کرده و به مقدار آن عدد فضای خالی ( SPACE ) ایجاد میکند و فضاهای خالی را بصورت یک عبارت کاراکتری برمی گرداند . مانند مثال زیر :
 
"PRINT "Place ten spaces" + SPACE$(10) + "here
WAIT KEY
 
 
با اجرای این مثال با قرار دادن تابع ()$SPACE بین دو عبارت Place ten spaces و here به مقدار 10 کاراکتر فضای خالی ایجاد کردیم .
 
تابع UPPER و تابع LOWER
در حروف انگلیسی ، هر حرف به دو شکل کوچک و یا بزرگ نوشته می شود . مثلا A و a . تابع ()$UPPER تمامی کاراکتر های عبارت ورودی اش را به شکل بزرگ آن تبدیل میکند و تابع ()$LOWER تمامی کاراکتر های عبارت ورودی اش را به شکل کوچک تبدیل میکند . مانند مثال زیر :
 
 ("PRINT LOWER$("ALL lower CASE")+" "+UPPER$("all upper case
WAIT KEY
 
مهم ترین کاربرد این دستور زمانی است که می خواهیم از کاربر ( فردی که بازی را انجام می دهد ) عبارتی را دریافت کنیم . برای آنکه در قبال ورودی از کاربر تصمیم خاصی را بگیریم از دستور زیر استفاده می کنیم :
 
$Input "Please Inter Password Key ? " ; Key
"If  Key$ = "Cls" Then Print "Ok" Else Print "No
Wait Key
 
با اجرای این مثال اگر دقیقا عبارت Cls توسط بازیکن وارد شود ، کلمه ی Ok چاپ می شود . مگرنه اگر هر کدام از عبارات CLS و cls و cLS و ClS و ... را وارد کنیم ، عبارت Ok چاپ نخواهد شد . اگر توابع UPPER و LOWER نبودند ، ما مجبور بودیم به این شکل برنامه را بنویسیم .
 
$Input "Please Inter Password Key ? " ; Key
$Select Key
"Case "cls
"Print "Ok
   EndCase
"Case "CLS
"Print "Ok
   EndCase
"Case "cLS
"Print "Ok
   EndCase
   ..
   ..
   Case Default
"Print "No
   EndCase
EndSelect
Wait Key
 
ولی با استفاده از یکی از این دو تابع می توانیم به جای خطوط بیشمار بالا از کدهای زیر استفاده کرد .
 
$Input "Please Inter Password Key ? " ; Key
"If  UPPER$( Key$) = "CLS" Then Print "Ok" Else Print "No
Wait Key
 
با اجرای این مثال عبارت دریافتی با شکل بزرگ در نظر گرفته شده و با عبارت CLS که با حروف بزرگ است مقایسه می شود . حالا فرقی نمی کند که موقع ورود عبارت دکمه ی Caps Lock روشن و یا خاموش باشد و یا اینکه کاربر دکمه ی Shift را نگه داشته باشد .
 

 



نظرات شما عزیزان:

نام :
آدرس ایمیل:
وب سایت/بلاگ :
متن پیام:
:) :( ;) :D
;)) :X :? :P
:* =(( :O };-
:B /:) =DD :S
-) :-(( :-| :-))
نظر خصوصی

 کد را وارد نمایید:

 

 

 

عکس شما

آپلود عکس دلخواه:







درباره وبلاگ


به وبلاگ من خوش آمدید
آخرین مطالب
پيوندها

تبادل لینک هوشمند
برای تبادل لینک  ابتدا ما را با عنوان آموزش ساخت بازی 3D ( سه بعدی ) به زبان Basic با دارک بیسیک D و آدرس darkbasic.LXB.ir لینک نمایید سپس مشخصات لینک خود را در زیر نوشته . در صورت وجود لینک ما در سایت شما لینکتان به طور خودکار در سایت ما قرار میگیرد.





نويسندگان


آمار وب سایت:  

بازدید امروز : 3
بازدید دیروز : 0
بازدید هفته : 3
بازدید ماه : 245
بازدید کل : 99615
تعداد مطالب : 24
تعداد نظرات : 3
تعداد آنلاین : 1